//
//  Problem217.swift
//  LeetCode
//
//  Created by 武侠 on 2023/6/14.
//  Copyright © 2023 zhulongiMac02. All rights reserved.
//

import UIKit

/*
 217. 存在重复元素    简单
 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ，返回 true ；如果数组中每个元素互不相同，返回 false 。
 示例 1：
     输入：nums = [1,2,3,1]
     输出：true
 示例 2：
     输入：nums = [1,2,3,4]
     输出：false
 示例 3：
     输入：nums = [1,1,1,3,3,4,3,2,4,2]
     输出：true
  
 提示：
 1 <= nums.length <= 105
 -109 <= nums[i] <= 109
 */
class Problem217: NSObject {
    /*
     思路：
     方法一：字典  ✅
        当dic[n] == 1 返回true
     方法二：set  ✅
        判断set的长度和nums长度是否一致
     */
    func containsDuplicate(_ nums: [Int]) -> Bool {
        var dic:[Int:Int] = [:]
        for n in nums {
            if dic[n] != nil {
                return true
            }
            dic[n] = 1
        }
        return false
    }
    
    func containsDuplicate2(_ nums: [Int]) -> Bool {
        return Set(nums).count != nums.count
    }
}
